﻿namespace Pyramid.Hardware.Cpu
{
    using System.Collections.Generic;
    using Pyramid.Hardware.MicroArchitecture;

    public class Mandrake
    {
        private RegisterFile registerFile;
        private Register memoryDataRegister;
        private Register controlRegister;
        private const int wordSize = Tryte.TritsPerTryte;

        public Mandrake(IEnumerable<ILine> memoryDataBus, ILine memoryDataStrobe, ILine clock)
        {
            BusLink dataBus = new BusLink(wordSize);

            IEnumerable<ILine> readSelectorBus = null;
            IEnumerable<ILine> writeSelectorBus = null;
            ILine writeLine = null;
            int registerCount = 0;

            registerFile = new RegisterFile(dataBus.OutputBus, readSelectorBus, writeSelectorBus, writeLine, clock, registerCount);


        }

        public IEnumerable<ILine> MemoryAddressBus
        {
            get;
            private set;
        }

        public IEnumerable<ILine> MemoryDataBus
        {
            get;
            private set;
        }
    }
}
